import axios from "axios";
import { BASE_URL, TIMEOUT } from './config'

// axios.defaults.header["Content-Type"] = 'application/json;charset=utf-8';//jso 格式 默认 

let service = axios.create({
    baseURL: BASE_URL,
    timeout: TIMEOUT
})

//请求拦截器  接受两个参数
service.interceptors.request.use(config => {
    //config参数应该是带了本次请求的一些信息，我们就可以在这个位置做一些 需要做的事情，加token，加时间戳，get请求加码之类的。
    return config;
}, error => {
    //请求失败
    Promise.reject(error)
})

//响应拦截
service.interceptors.response.use(res => {
    //res服务端请求带回的信息，可以做一些操作，比如判断token是否有过期，统一简化数据格式
    if (res.code === 401) {
        //跳转 login页面    这边查了一下为什么要错误返回一个promise对象，据说是loading使用，还没有机会实践
        return Promise.reject('令牌失效');
    } else if (res.code == 500) {
        //返回错误码
        return Promise.reject(res.coude);
    } else {
        return res.data
    }
}, error => {
    return Promise.reject(error)
}
)

export default service